import {Injectable} from '@angular/core';
import {UtilItem} from '../interface/util-item.interface';
import {MeasureComponent} from './measure/measure.component';
import {MousePositionComponent} from './mouse-position/mouse-position.component';
import {LayerSwipeComponent} from './layer-swipe/layer-swipe.component';
import {DrawFeatureComponent} from './draw-feature/draw-feature.component';
import {ColorManipulationComponent} from './color-manipulation/color-manipulation.component';
import {ShadedReliefComponent} from './shaded-relief/shaded-relief.component';
import {ImageFiltersComponent} from './image-filters/image-filters.component';
import {ExportMapComponent} from './export-map/export-map.component';
import {SmoothLineComponent} from './smooth-line/smooth-line.component';
import {LayerSpyComponent} from './layer-spy/layer-spy.component';
import {RasterReprojectionComponent} from './raster-reprojection/raster-reprojection.component';
import {SeaLevelComponent} from './sea-level/sea-level.component';
import {VectorLabelComponent} from './vector-label/vector-label.component';
import {ScaleLineComponent} from './scale-line/scale-line.component';
import {SphereComponent} from './sphere/sphere.component';
import {FlightAnimationComponent} from './flight-animation/flight-animation.component';
import {MakerAnimationComponent} from './maker-animation/maker-animation.component';
import {FractalRenderComponent} from './fractal-render/fractal-render.component';
import {HeatmapComponent} from './heatmap/heatmap.component';
import {BlendModesComponent} from './blend-modes/blend-modes.component';
import {ShapeComponent} from './shape/shape.component';
import {CityScreenComponent} from './city-screen/city-screen.component';
import {FreehandDrawComponent} from './freehand-draw/freehand-draw.component';
import {LayerGroupComponent} from './layer-group/layer-group.component';
import {LayerClippingComponent} from './layer-clipping/layer-clipping.component';
import {SmoothReloadComponent} from './smooth-reload/smooth-reload.component';
import {CustomAnimationComponent} from './custom-animation/custom-animation.component';
import {SharedViewsComponent} from './shared-views/shared-views.component';
import {TeleportingMapsComponent} from './teleporting-maps/teleporting-maps.component';
import {CustomOverviewComponent} from './custom-overview/custom-overview.component';
import {CustomInteractionsComponent} from './custom-interactions/custom-interactions.component';
import {LayerZIndexComponent} from './layer-z-index/layer-z-index.component';
import {MovementPathComponent} from './movement-path/movement-path.component';
import {VectorBlockSelectionComponent} from './vector-block-selection/vector-block-selection.component';
import {RegionGrowingComponent} from './region-growing/region-growing.component';
import {RasterComponent} from './raster/raster.component';
import {CoordinatePositionComponent} from './coordinate-position/coordinate-position.component';
import {OnlineTileComponent} from './online-tile/online-tile.component';

@Injectable({
    providedIn: 'root'
})
export class MapUtilsService {

    constructor() {
    }

    // getUtils(): Array<UtilItem> {
    getUtils(): any {
        return [
            {
                label: '常用',
                key: 'common',
                active: true,
                list: [
                    {
                        label: '绘制',
                        data: {},
                        icon: 'form',
                        component: DrawFeatureComponent
                    },
                    {
                        label: '坐标显示',
                        data: {},
                        icon: 'gateway',
                        component: MousePositionComponent
                    },
                    {
                        label: '测量',
                        data: {},
                        icon: 'column-width',
                        component: MeasureComponent
                    },
                    {
                        label: '下载地图',
                        data: {},
                        icon: 'download',
                        component: ExportMapComponent
                    },
                    {
                        label: '测量',
                        data: {},
                        icon: 'column-width',
                        component: MeasureComponent
                    },
                    {
                        label: '比例尺',
                        data: {},
                        icon: 'iconbilichi2',
                        component: ScaleLineComponent
                    },
                    {
                        label: '望远镜',
                        data: {},
                        icon: 'video-camera',
                        component: LayerSpyComponent
                    },
                    {
                        label: '定位反查',
                        data: {},
                        icon: 'environment',
                        component: CoordinatePositionComponent
                    },
                ]
            },
            {
                label: '图像',
                key: 'imagery',
                list: [
                    {
                        label: '颜色处理',
                        data: {},
                        icon: 'bg-colors',
                        component: ColorManipulationComponent
                    },
                    {
                        label: '晕渲地貌',
                        data: {},
                        icon: 'bulb',
                        component: ShadedReliefComponent
                    },
                    {
                        label: '图像过滤',
                        data: {},
                        icon: 'switcher',
                        component: ImageFiltersComponent
                    },
                    {
                        label: '光栅投影',
                        data: {},
                        icon: 'layout',
                        component: RasterReprojectionComponent
                    },
                    {
                        label: '热力图',
                        data: {},
                        icon: 'fire',
                        component: HeatmapComponent
                    },
                    {
                        label: '透明度',
                        data: {},
                        icon: 'percentage',
                        component: LayerGroupComponent
                    },
                    {
                        label: '添加图层',
                        data: {},
                        icon: 'plus-circle',
                        component: OnlineTileComponent
                    },
                ]
            },
            {
                label: '展示',
                key: 'display',
                list: [
                    {
                        label: '图层滑动',
                        data: {},
                        icon: 'sliders',
                        component: LayerSwipeComponent
                    },
                    {
                        label: '混合模式',
                        data: {},
                        icon: 'experiment',
                        component: BlendModesComponent
                    },
                    {
                        label: '路线动画',
                        data: {},
                        icon: 'car',
                        component: MakerAnimationComponent
                    },
                    {
                        label: '渲染',
                        data: {},
                        icon: 'highlight',
                        component: FractalRenderComponent
                    },
                    {
                        label: '航班',
                        data: {},
                        icon: 'rocket',
                        component: FlightAnimationComponent
                    },
                    /*{
                        label: '行进路线',
                        data: {},
                        icon: 'border-outer',
                        component: LayerSpyComponent
                    },*/
                    {
                        label: '要素动画',
                        data: {},
                        icon: 'smile',
                        component: CustomAnimationComponent
                    },
                    {
                        label: '区域成长',
                        data: {},
                        icon: 'area-chart',
                        component: RegionGrowingComponent
                    },
                    {
                        label: '平滑加载',
                        data: {},
                        icon: 'box-plot',
                        component: SmoothReloadComponent
                    },
                    {
                        label: '海平面',
                        data: {},
                        icon: 'iconhaipingmian',
                        component: SeaLevelComponent
                    },
                    {
                        label: '经纬网',
                        data: {},
                        icon: 'global',
                        component: SphereComponent
                    },
                    {
                        label: '城市筛选',
                        data: {},
                        icon: 'bank',
                        component: CityScreenComponent
                    },
                    {
                        label: '剪辑图层',
                        data: {},
                        icon: 'scissor',
                        component: LayerClippingComponent
                    },
                    {
                        label: '共享视图',
                        data: {},
                        icon: 'share-alt',
                        component: SharedViewsComponent
                    },
                    {
                        label: '地图瞬移',
                        data: {},
                        icon: 'drag',
                        component: TeleportingMapsComponent
                    },
                    {
                        label: '概览图',
                        data: {},
                        icon: 'profile',
                        component: CustomOverviewComponent
                    },
                    {
                        label: '轨道动画',
                        data: {},
                        icon: 'border',
                        component: MovementPathComponent
                    },
                    // {
                    //     label: '图块多选',
                    //     data: {},
                    //     icon: 'heat-map',
                    //     component: VectorBlockSelectionComponent
                    // },
                    {
                        label: '光栅源',
                        data: {},
                        icon: 'alert',
                        component: RasterComponent
                    },
                    // {
                    //     label: '矢量标签',
                    //     data: {},
                    //     icon: 'drag',
                    //     component: VectorLabelComponent
                    // },
                ]
            }
        ]
    }
}
